$('.retractable').click(function () {
    $(this).parents('.panel').siblings().find('.retractable').addClass('icon-zhankai').removeClass('icon-shouqi');
    $(this).parents('.privilege').find('.panel-body').toggle();
    if ($(this).hasClass('icon-shouqi')) {
        $(this).removeClass('icon-shouqi').addClass('icon-zhankai');
    } else {
        $(this).addClass('icon-shouqi').removeClass('icon-zhankai');
    }
});

//点击选中
$(document).on('click', '.icon-unchecked', function () {
    if ($(this).hasClass('disabled')) return
    $(this).removeClass('icon-unchecked').addClass('icon-checked');
});

//点击取消选中
$(document).on('click', '.icon-checked', function () {
    if ($(this).hasClass('disabled')) return
    $(this).removeClass('icon-checked').addClass('icon-unchecked');
});

//点击菜单全选
$(document).on('click', ".menu", function () {
    if ($(this).hasClass('disabled')) return
    var id = $(this).data('id');
    var parent_id = $(this).data('parent_id');
    var class_type = $(this).data('class');
    if (class_type == 'icon-unchecked') { //未选中，单击则全选
        $(this).data('class', 'icon-checked');
        $("span[id^='" + id + "-']").each(function () {
            $(this).data('class', 'icon-checked');
            $(this).removeClass('icon-unchecked').addClass('icon-checked');
        });
    }
    if (class_type == 'icon-checked') { //已选中，单击则取消全选
        $(this).data('class', 'icon-unchecked');
        $("span[id^='" + id + "']").each(function () {
            $(this).data('class', 'icon-unchecked');
            $(this).removeClass('icon-checked').addClass('icon-unchecked');
        });
    }

    check(parent_id);
});

function check(parent_id) {
    //判断同一级是否还有未选中的
    var k = 0;
    $("span[data-parent_id=" + parent_id + "]").each(function () {
        if ($(this).data('class') == 'icon-unchecked') k++
    });

    //判断同一级是否有选中的
    var m = 0;
    $("span[data-parent_id=" + parent_id + "]").each(function () {
        if ($(this).data('class') == 'icon-checked') m++
    });

    if (k > 0 && m > 0) { //还有未选中的，并且有选中的，则父级为半全选状态
        $("#" + parent_id + "").removeClass('icon-unchecked').removeClass('icon-checked').addClass('icon-checked').addClass('icon-unchecked');
        $("#" + parent_id + "").data('class', 'icon-checked');
    } else if (m == 0) { //没有选中的，则父级为未选中状态
        $("#" + parent_id + "").removeClass('icon-unchecked').removeClass('icon-checked').addClass('icon-unchecked');
        $("#" + parent_id + "").data('class', 'icon-unchecked');
    } else if (k == 0) { //没有未选中的，则父级为全选状态
        $("#" + parent_id + "").removeClass('icon-unchecked').removeClass('icon-unchecked').addClass('icon-checked');
        $("#" + parent_id + "").data('class', 'icon-checked');
    }
    var pid = $("#" + parent_id + "").data('parent_id')

    if (pid != '' && pid != undefined) check(pid)
}

